package com.atguigu.f_tcp_plus;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

public class Client { //客户端
    public static void main(String[] args) throws IOException {
        //创建客户端对象
        Socket socket = new Socket(InetAddress.getLocalHost(),10010);

        //创建流对象
        OutputStream os = socket.getOutputStream();

        //创建本地的 输入流对象 从客户端硬盘读取文件内容
        FileInputStream fis = new FileInputStream("T_Day26\\test\\出师表.txt");

        byte[] bytes = new byte[1024];

        int length; // 统计读到的字节个数

        while((length = fis.read(bytes)) != -1){
            //使用通讯的输出流对象 写数据 -> 给服务器发数据
            os.write(bytes,0,length);
        }

        //客户端会一直等回显信息 --> 需要在客户端这里发送 标识 告知服务器 发送完毕
        //把通讯的输出流对象给 关闭掉
        socket.shutdownOutput();

        //客户端接收回显
        InputStream is = socket.getInputStream();

        byte[] bys = new byte[1024];
        int len = is.read(bys);

        //字节数组转换成字符串
        String back = new String(bys, 0, len);
        System.out.println("服务器回显信息 : " + back);

        //关闭资源
        //socket.close();

        //关闭本地流
        fis.close();
    }
}
